单片机烧录的底层原理是怎样的,为什么不同型号的单片机需要几乎完全不同的烧录程序? |
您所在的位置:网站首页 › flash 原理 › 单片机烧录的底层原理是怎样的,为什么不同型号的单片机需要几乎完全不同的烧录程序? |
烧录程序一般是指把代码烧录到flash中。那如何把代码烧录到flash中呢?配置flash接口寄存器。 每一块flash都有flash配置寄存器,通过操作这些flash配置寄存器就可以对flash进行解锁,擦除,编程等操作。 flash算法或者编程算法,就是实现定义好的函数,包括:初始化,编程,擦除等。来供程序使用 不同的FLASH的接口寄存器的操作方式不同,具体表现在:寄存器的地址不同,寄存器的关键位置的含义不同,所以实现定义好的函数也就会不一样。以上应该能给你解释为什么不同型号的单片机需要完全不同的烧录程序。 单片机的烧录原理:单片机都有外设:比如GPIO,SPI,UART。每个外设都有对应的操作外设的寄存器。姑且称之为外设寄存器。CPU也有寄存器:R1-R15等。这些叫CPU寄存器。同时单片机还有一类寄存器 叫调试寄存器。一般来说初学者只会去操作外设寄存器。 烧录的原理基本都是这样的:首先配置调试寄存器使得CPU的停止运行。然后去修改内存的值,然后去修改PC寄存器的值,然后再次修改调试寄存器的值使得CPU运行,这样单片机就会从PC寄存器的值处开始运行。这样我们修改了的内存就会被执行了。 所以重点就是修改的内存的值:应该修改成什么样?首先先把flash算法传到内存中,然后在把待烧录的代码传到内存中(如果内存足够大的话可以一次性全传,否则可以分次传) 最后:配置调试寄存器和CPU寄存器都是通过DAP实现的,也就是JTAG或者SWD。通过控制DP和AP寄存器可以读写所有的:CPU寄存器;调试寄存器;内存; 控制DP和AP寄存器的方法:参考官方文档arm-debug-interface-V5 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |